package com.luyun.frogpay.base.utils;

import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;

/**
 * Created by 赵星宇 on 2018/1/24.
 */

public class EditUtil {

    private final String TAG= getClass().getName();
    /**
     * 限制输入类型为小数的输入框只能输入到小数点后两位
     *
     * @param editText
     */
    public static void posDotTwoNum(EditText editText) {//限制小数点后两位
        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void afterTextChanged(Editable edt) {
                String temp = edt.toString();
                int posDot = temp.indexOf(".");
                if (posDot <= 0) {
                    return;
                }
                if (temp.length() - posDot - 1 > 2) {
                    edt.delete(posDot + 3, posDot + 4);
                }
            }

            @Override
            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
            }

            @Override
            public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
            }
        });
    }


    /**
     * 验证是否为手机号
     *
     * @param number 要进行验证的字符串
     * @return
     */
    public static boolean isMobile(String number) {//验证手机格式
    /*
    移动：134、135、136、137、138、139、150、151、157(TD)、158、159、187、188
    联通：130、131、132、152、155、156、185、186
    电信：133、153、180、189、（1349卫通）
    总结起来就是第一位必定为1，第二位必定为3或5或8，其他位置的可以为0-9
    */
        String num = "[1][34578]\\d{9}";//"[1]"代表第1位为数字1，"[358]"代表第二位可以为3、5、8中的一个，"\\d{9}"代表后面是可以是0～9的数字，有9位。
        if (TextUtils.isEmpty(number)) {
            return false;
        } else {
            //matches():字符串是否在给定的正则表达式匹配
            return number.matches(num);
        }
    }

    /**
     * 手机号加空格
     *
     * @param editText 要加空格的输入框
     */
    public static void phoneAddSpace(final EditText editText) {
        editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int start, int before, int count) {
            }

            @Override
            public void onTextChanged(CharSequence charSequence, int start, int before, int count) {

                //手机号自动加空格
                if (charSequence == null || charSequence.length() == 0) {
                    return;
                }
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < charSequence.length(); i++) {
                    if (i != 3 && i != 8 && charSequence.charAt(i) == ' ') {
                        continue;
                    } else {
                        sb.append(charSequence.charAt(i));
                        if ((sb.length() == 4 || sb.length() == 9) && sb.charAt(sb.length() - 1) != ' ') {
                            sb.insert(sb.length() - 1, ' ');
                        }
                    }
                }
                if (!sb.toString().equals(charSequence.toString())) {
                    int index = start + 1;
                    if (sb.charAt(start) == ' ') {
                        if (before == 0) {
                            index++;
                        } else {
                            index--;
                        }
                    } else {
                        if (before == 1) {
                            index--;
                        }
                    }
                    editText.setText(sb.toString());
                    editText.setSelection(index);
                }
            }

            @Override
            public void afterTextChanged(Editable editable) {

            }
        });
    }

    /**
     * 带空格的手机号去空格
     * @param phoneNumber
     * @return
     */
    public static String phoneTrim(String phoneNumber) {
        if (phoneNumber.length() != 13) {
            return "";
        } else {
            return phoneNumber.replaceAll(" ", "");
        }
    }

    /**
     * 监听几个输入框都不为空，设置btn能用
     *
     * @param editTexts 输入框集合
     * @param textView  selector_pswedit_status
     */
    public static void setBtnEnable(final EditText[] editTexts, final TextView textView) {
        for (int i = 0; i < editTexts.length; i++) {
            editTexts[i].addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence charSequence, int start, int count, int after) {
                }
                @Override
                public void onTextChanged(CharSequence charSequence, int start, int before, int count) {

                    if (isEmpty(editTexts)) {
                        textView.setEnabled(false);
                    } else {
                        textView.setEnabled(true);
                    }
                }
                @Override
                public void afterTextChanged(Editable editable) {
                }
            });
        }
    }

    /**
     * 判断是不是钱
     * @param money
     * @return
     */
    public static boolean isMoney(String money){
        if(!TextUtils.isEmpty(money)){
            double moenyStr= Double.parseDouble(money);
            if(moenyStr==0.00){
                return false;
            }else {
                return true;
            }
        }else {
            return false;
        }


    }

    /**
     * 判断输入框内容是不是空的
     *
     * @param editTexts 多个输入框
     * @return
     */
    public static boolean isEmpty(EditText[] editTexts) {
        for (int i = 0; i < editTexts.length; i++) {
            String str = editTexts[i].getText().toString();
            if (TextUtils.isEmpty(str)) {
                return true;
            }
        }
        return false;

    }

    /**
     * 判断输入框内容是不是空的
     *
     * @param editText 单个输入框
     * @return
     */
    public static boolean isEmpty(EditText editText) {
        String str = editText.getText().toString();
        if (TextUtils.isEmpty(str)) {
            return true;
        }
        return false;
    }
}
